
#闭包的误区
def func1():
    a = 10
    def func2():
        a = 20 #此时a是局部变量，不会影响外部变量
        print(a)  
    print(a)
    func2()
    print(a)
    return func2

#1.查看a值的变化，打印结果如下：
func1()
'''
10
20
10
'''

#2.func2并不是一个闭包
f = func1()
print(f.__closure__)
#此出打印None，说明func2并不是一个闭包，因为在func2内部使用了局部变量a,没有成功引用外部环境中变量a
#达不到形成闭包的条件：缺少闭包环境变量